﻿
var actionUrl = '/Admin/GetMenuListData';
var formUrl = "Modules/html/OrganizeForm.htm?n=" + Math.random();
var navgrid;

$(function () {
    autoResize({ dataGrid: '#MenuGrid', gridType: 'treegrid', callback: mygrid.bindGrid, height: 5 });
    $('#btnAdd').click(MenuMethod.Add);
    //$('#btnAdd').click(OrganizeAdminMethod.AddOrganize); //新增组织机构
    //$('#btnEdit').click(OrganizeAdminMethod.EditOrganize); //修改组织机构
    //$('#btnDelete').click(OrganizeAdminMethod.DeleteOrganize); //删除组织机构
    //$('#btnMoveTo').click(OrganizeAdminMethod.MoveTo); //移动组织机构
    //$('#btnExport').click(OrganizeAdminMethod.ExportOrganize); //导出组织机构数据
    //$('#btnUserOrganizePermission').click(OrganizeAdminMethod.SetUserOrganizePermission); //设置用户组织机构权限
    //$('#btnRoleOrganizePermission').click(OrganizeAdminMethod.SetRoleOrganizePermission); //设置角色组织机构权限
    //$('#a_refresh').click(function () { //刷新
    //    mygrid.reload();
    //});
});

var mygrid = {
    bindGrid: function (size) {
        navgrid = $('#MenuGrid').treegrid({
            toolbar: '#toolbar',
            //title: '菜单列表',
            iconCls: 'icon icon-org',
            width: size.width,
            height: size.height,
            nowrap: true,
            rownumbers: true,
            animate: true,
            resizable: true,
            collapsible: false,
            url: actionUrl,
            idField: 'ID',
            treeField: 'MenuName',
            frozenColumns: [[
                { title: '菜单名称', field: 'MenuName', width: 200 }
            ]],
            columns: [[
                { title: '简称', field: 'MenuDesc', width: 120, align: 'center' },
                { title: '链接地址', field: 'NavigateUrl', width: 150, align: 'center' },
                { title: '图标样式', field: 'IconCss', width: 100, align: 'center' },
                { title: '排序', field: 'SeqNum', width: 100, align: 'center' },
                { title: '有效', field: 'IsEnable', width: 100, align: 'center', formatter: imgcheckbox },
                { title: '菜单类型', field: 'MenuCategory', width: 80, align: 'center' },
                { title: 'ID', field: 'ID', hidden: true }
            ]]
        });
    },
    reload: function () {
        navgrid.treegrid('reload');
    },
    selected: function () {
        return navgrid.treegrid('getSelected');
    }
}

var imgcheckbox = function (cellvalue, options, rowObject) {
    return cellvalue ? '<img src="/css/icon/ok.png" alt="正常" title="正常" />' : '<img src="/css/icon/stop.png" alt="禁用" title="禁用" />';
}

var MenuMethod = {
    Add: function () {  
        Message.Open('MenuAdd', '添加菜单', '/Admin/MenuAdd');
        //art.dialog.open('/Admin/MenuAdd',
        //    {
        //        id: 'MenuMethod.add',
        //        title: '添加菜单',
        //        lock: true,
        //        opacity: 0.5,	// 透明度
        //        resize: false,
        //        drag: false
        //    });
    }
}

//var OrganizeAdminMethod = {
//    AddOrganize: function () { //增加组织机构
//        if ($(this).linkbutton('options').disabled == true) {
//            return;
//        }
//        //功能代码逻辑...
//        var addDialog = top.$.hDialog({
//            href: formUrl, title: '添加组织机构', iconCls: 'icon-add', width: 750, height: 520,
//            onLoad: function () {
//                pubMethod.bindCtrl();
//                pubMethod.bindCategory();
//                pubMethod.bindComboGrid();
//                var row = mygrid.selected();
//                if (row) {
//                    top.$('#txt_ParentId').combotree('setValue', row.ParentId);
//                }
//            },
//            submit: function () {
//                if (top.$('#uiform').validate().form()) {
//                    var vparentid = top.$('#txt_ParentId').combobox('getValue');
//                    var vcategory = top.$('#txt_Category').combobox('getValue');
//                    var vmanager = top.$('#txt_Manager').combogrid('getText');
//                    var vassistantmanager = top.$('#txt_AssistantManager').combogrid('getText');
//                    var param = 'action=AddOrganize&vparentid=' + vparentid + '&vcategory=' + vcategory + '&vmanager=' + vmanager + '&vassistantmanager=' + vassistantmanager + '&'
//                              + top.$('#uiform').serialize();
//                    $.ajaxjson(actionUrl, param, function (d) {
//                        if (d.Success) {
//                            msg.ok(d.Message);
//                            addDialog.dialog('close');
//                            mygrid.reload();
//                        } else {
//                            MessageOrRedirect(d);
//                        }
//                    });
//                }
//            }
//        });
//    },
//    EditOrganize: function () { //修改组织机构
//        if ($(this).linkbutton('options').disabled == true) {
//            return;
//        }
//        //功能代码逻辑...
//        var row = mygrid.selected();
//        if (row) {
//            var editDailog = top.$.hDialog({
//                href: formUrl, title: '修改组织机构', iconCls: 'icon-edit', width: 750, height: 520,
//                onLoad: function () {
//                    pubMethod.bindCtrl(row.Id);
//                    pubMethod.bindCategory();
//                    pubMethod.bindComboGrid();
//                    top.$('#txt_Code').val(row.Code);
//                    top.$('#txt_FullName').val(row.FullName);
//                    top.$('#txt_ShortName').val(row.ShortName);
//                    top.$('#txt_ParentId').combotree('setValue', row.ParentId);
//                    top.$('#txt_Category').combobox('setValue', row.Category);
//                    top.$('#txt_Manager').combogrid('setValue', row.Manager);
//                    top.$('#txt_AssistantManager').combogrid('setValue', row.AssistantManager);
//                    top.$('#txt_OuterPhone').val(row.OuterPhone);
//                    top.$('#txt_InnerPhone').val(row.InnerPhone);
//                    top.$('#txt_Fax').val(row.Fax);
//                    top.$('#txt_Postalcode').val(row.Postalcode);
//                    top.$('#txt_Web').val(row.Web);
//                    top.$('#txt_Address').val(row.Address);
//                    top.$('#chk_Enabled').attr('checked', row.Enabled == "1");
//                    top.$('#chk_IsInnerOrganize').attr('checked', row.IsInnerOrganize == "1");
//                    top.$('#txt_Description').val(row.Description);
//                },
//                submit: function () {
//                    if (top.$('#uiform').validate().form()) {

//                        //保存时判断当前节点所选的父节点，不能为当前节点的子节点，这样就乱套了....
//                        var treeParentId = top.$('#txt_ParentId').combotree('tree'); // 得到树对象
//                        var node = treeParentId.tree('getSelected');
//                        if (node) {
//                            var nodeParentId = treeParentId.tree('find', row.Id);
//                            var children = treeParentId.tree('getChildren', nodeParentId.target);
//                            var nodeIds = '';
//                            var isFind = 'false';
//                            for (var index = 0; index < children.length; index++) {
//                                if (children[index].id == node.id) {
//                                    isFind = 'true';
//                                    break;
//                                }
//                            }

//                            if (isFind == 'true') {
//                                top.$.messager.alert('温馨提示', '请选择父节点元素！', 'warning');
//                                return;
//                            }
//                        }


//                        var vparentid = top.$('#txt_ParentId').combobox('getValue');
//                        var vcategory = top.$('#txt_Category').combobox('getValue');
//                        var vmanager = top.$('#txt_Manager').combogrid('getText');
//                        var vassistantmanager = top.$('#txt_AssistantManager').combogrid('getText');
//                        var query = 'action=EditOrganize&vparentid=' + vparentid + '&vcategory=' + vcategory + '&KeyId=' + row.Id + '&vmanager=' + vmanager + '&vassistantmanager=' + vassistantmanager + '&'
//                                  + top.$('#uiform').serialize();
//                        $.ajaxjson(actionUrl, query, function (d) {
//                            if (d.Success) {
//                                msg.ok(d.Message);
//                                editDailog.dialog('close');
//                                mygrid.reload();
//                            } else {
//                                MessageOrRedirect(d);
//                            }
//                        });
//                    }
//                }
//            });


//        } else {
//            msg.warning('请选择要修改的组织机构!');
//            return false;
//        }
//        return false;
//    },
//    DeleteOrganize: function () { //删除组织机构
//        if ($(this).linkbutton('options').disabled == true) {
//            return;
//        }
//        //功能代码逻辑...
//        var row = mygrid.selected();
//        if (row != null) {
//            var childs = $('#organizeGrid').treegrid('getChildren', row.Id);
//            if (childs.length > 0) {
//                $.messager.alert('警告提示', '当前所选有子节点数据，不能删除。', 'warning');
//                return false;
//            }
//            var query = 'action=DeleteOrganize&KeyId=' + row.Id;
//            $.messager.confirm('询问提示', '确认要删除选中的组织机构吗？', function (data) {
//                if (data) {
//                    $.ajaxjson(actionUrl, query, function (d) {
//                        if (d.Success) {
//                            msg.ok(d.Message);
//                            mygrid.reload();
//                        } else {
//                            MessageOrRedirect(d);
//                        }
//                    });
//                }
//                else {
//                    return false;
//                }
//            });
//        }
//        else {
//            msg.warning('请选择要删除的组织机构!');
//            return false;
//        }
//        return false;
//    },
//    MoveTo: function () { //移动组织机构
//        if ($(this).linkbutton('options').disabled == true) {
//            return;
//        }
//        //功能代码逻辑...

//    },
//    ExportOrganize: function () { //导出组织机构
//        if ($(this).linkbutton('options').disabled == true) {
//            return;
//        }
//        //功能代码逻辑...

//    },
//    SetUserOrganizePermission: function () { //设置用户组织机构权限
//        if ($(this).linkbutton('options').disabled == true) {
//            return;
//        }
//        //功能代码逻辑...
//        var userGrid;
//        var curResourceTargetResourceIds = [];
//        var setDialog = top.$.hDialog({
//            title: '（用户-组织机构）权限设置',
//            width: 670, height: 600, iconCls: 'icon-layout_key', //cache: false,
//            href: "Modules/html/PermissionBacthSetForm.htm?n=" + Math.random(),
//            onLoad: function () {
//                using('panel', function () {
//                    top.$('#panelTarget').panel({ title: '组织机构列表', iconCls: 'icon-org', height: $(window).height() - 3 });
//                });

//                userGrid = top.$('#leftnav').datagrid({
//                    title: '用户列表',
//                    url: 'Modules/handler/UserAdminHandler.ashx',
//                    nowrap: false, //折行
//                    //fit: true,
//                    rownumbers: true, //行号
//                    striped: true, //隔行变色
//                    idField: 'Id', //主键
//                    singleSelect: true, //单选
//                    frozenColumns: [[]],
//                    columns: [[
//                        { title: '登录名', field: 'UserName', width: 120, align: 'left' },
//                        { title: '用户名', field: 'RealName', width: 150, align: 'left' }
//                    ]],
//                    onLoadSuccess: function (data) {
//                        top.$('#rightnav').tree({
//                            cascadeCheck: false, //联动选中节点
//                            checkbox: true,
//                            lines: true,
//                            url: 'Modules/handler/OrganizeAdminHander.ashx?action=treedata',
//                            onSelect: function (node) {
//                                top.$('#rightnav').tree('getChildren', node.target);
//                            }
//                        });
//                        top.$('#leftnav').datagrid('selectRow', 0);
//                    },
//                    onSelect: function (rowIndex, rowData) {
//                        curResourceTargetResourceIds = [];
//                        var query = 'action=GetPermissionScopeTargetIds'
//                                  + '&resourceCategory=PiUser&resourceId=' + rowData.Id
//                                  + '&targetCategory=PiOrganize';
//                        $.ajaxtext('handler/PermissionHandler.ashx', query, function (data) {
//                            var targetResourceTree = top.$('#rightnav');
//                            targetResourceTree.tree('uncheckedAll');
//                            if (data == '' || data.toString() == '[object XMLDocument]') {
//                                return;
//                            }
//                            curResourceTargetResourceIds = data.split(',');
//                            for (var i = 0; i < curResourceTargetResourceIds.length; i++) {
//                                var node = targetResourceTree.tree('find', curResourceTargetResourceIds[i]);
//                                if (node)
//                                    targetResourceTree.tree("check", node.target);
//                            }
//                        });
//                    }
//                });
//            },
//            submit: function () {
//                var allSelectTargetResourceIds = permissionMgr.getSelectedResource().split(',');
//                var grantResourceIds = '';
//                var revokeResourceIds = '';
//                var flagRevoke = 0;
//                var flagGrant = 0;
//                while (flagRevoke < curResourceTargetResourceIds.length) {
//                    if ($.inArray(curResourceTargetResourceIds[flagRevoke], allSelectTargetResourceIds) == -1) {
//                        revokeResourceIds += curResourceTargetResourceIds[flagRevoke] + ','; //得到收回的权限列表
//                    }
//                    ++flagRevoke;
//                }

//                while (flagGrant < allSelectTargetResourceIds.length) {
//                    if ($.inArray(allSelectTargetResourceIds[flagGrant], curResourceTargetResourceIds) == -1) {
//                        grantResourceIds += allSelectTargetResourceIds[flagGrant] + ','; //得到授予的权限列表
//                    }
//                    ++flagGrant;
//                }

//                var query = 'action=GrantRevokePermissionScopeTargets&resourceId=' + top.$('#leftnav').datagrid('getSelected').Id
//                          + '&resourceCategory=PiUser&targetCategory=PiOrganize'
//                          + '&grantTargetIds=' + grantResourceIds + "&revokeTargetIds=" + revokeResourceIds;
//                $.ajaxjson('handler/PermissionHandler.ashx', query, function (d) {
//                    if (d.Data > 0) {
//                        msg.ok('设置成功！');
//                    }
//                    else {
//                        alert(d.Message);
//                    }
//                });
//            }
//        });

//    },
//    SetRoleOrganizePermission: function () { //设置角色组织机构权限
//        if ($(this).linkbutton('options').disabled == true) {
//            return;
//        }
//        //功能代码逻辑...
//        //功能代码逻辑...
//        var userGrid;
//        var curResourceTargetResourceIds = [];
//        var setDialog = top.$.hDialog({
//            title: '（角色-组织机构）权限设置',
//            width: 670, height: 600, iconCls: 'icon-layout_key', //cache: false,
//            href: "Modules/html/PermissionBacthSetForm.htm?n=" + Math.random(),
//            onLoad: function () {
//                using('panel', function () {
//                    top.$('#panelTarget').panel({ title: '组织机构列表', iconCls: 'icon-org', height: $(window).height() - 3 });
//                });

//                userGrid = top.$('#leftnav').datagrid({
//                    title: '角色列表',
//                    url: 'Modules/handler/RoleAdminHandler.ashx?action=getrolelist',
//                    nowrap: false, //折行
//                    //fit: true,
//                    rownumbers: true, //行号
//                    striped: true, //隔行变色
//                    idField: 'Id', //主键
//                    singleSelect: true, //单选
//                    frozenColumns: [[]],
//                    columns: [[
//                        { title: '角色编码', field: 'Code', width: 120, align: 'left' },
//                        { title: '角色名称', field: 'RealName', width: 150, align: 'left' }
//                    ]],
//                    onLoadSuccess: function (data) {
//                        top.$('#rightnav').tree({
//                            cascadeCheck: false, //联动选中节点
//                            checkbox: true,
//                            lines: true,
//                            url: 'Modules/handler/OrganizeAdminHander.ashx?action=treedata',
//                            onSelect: function (node) {
//                                top.$('#rightnav').tree('getChildren', node.target);
//                            }
//                        });
//                        top.$('#leftnav').datagrid('selectRow', 0);
//                    },
//                    onSelect: function (rowIndex, rowData) {
//                        curResourceTargetResourceIds = [];
//                        var query = 'action=GetPermissionScopeTargetIds'
//                                  + '&resourceCategory=PiRole&resourceId=' + rowData.Id
//                                  + '&targetCategory=PiOrganize';
//                        $.ajaxtext('handler/PermissionHandler.ashx', query, function (data) {
//                            var targetResourceTree = top.$('#rightnav');
//                            targetResourceTree.tree('uncheckedAll');
//                            if (data == '' || data.toString() == '[object XMLDocument]') {
//                                return;
//                            }
//                            curResourceTargetResourceIds = data.split(',');
//                            for (var i = 0; i < curResourceTargetResourceIds.length; i++) {
//                                var node = targetResourceTree.tree('find', curResourceTargetResourceIds[i]);
//                                if (node)
//                                    targetResourceTree.tree("check", node.target);
//                            }
//                        });
//                    }
//                });
//            },
//            submit: function () {
//                var allSelectTargetResourceIds = permissionMgr.getSelectedResource().split(',');
//                var grantResourceIds = '';
//                var revokeResourceIds = '';
//                var flagRevoke = 0;
//                var flagGrant = 0;
//                while (flagRevoke < curResourceTargetResourceIds.length) {
//                    if ($.inArray(curResourceTargetResourceIds[flagRevoke], allSelectTargetResourceIds) == -1) {
//                        revokeResourceIds += curResourceTargetResourceIds[flagRevoke] + ','; //得到收回的权限列表
//                    }
//                    ++flagRevoke;
//                }

//                while (flagGrant < allSelectTargetResourceIds.length) {
//                    if ($.inArray(allSelectTargetResourceIds[flagGrant], curResourceTargetResourceIds) == -1) {
//                        grantResourceIds += allSelectTargetResourceIds[flagGrant] + ','; //得到授予的权限列表
//                    }
//                    ++flagGrant;
//                }

//                var query = 'action=GrantRevokePermissionScopeTargets&resourceId=' + top.$('#leftnav').datagrid('getSelected').Id
//                          + '&resourceCategory=PiRole&targetCategory=PiOrganize'
//                          + '&grantTargetIds=' + grantResourceIds + "&revokeTargetIds=" + revokeResourceIds;
//                $.ajaxjson('handler/PermissionHandler.ashx', query, function (d) {
//                    if (d.Data > 0) {
//                        msg.ok('设置成功！');
//                    }
//                    else {
//                        alert(d.Message);
//                    }
//                });
//            }
//        });
//    }
//}

////公共方法
//var pubMethod = {
//    bindCtrl: function (navId) {
//        var treeData = navgrid.treegrid('getData');
//        treeData = JSON.stringify(treeData).replace(/Id/g, 'id').replace(/FullName/g, 'text');
//        treeData = '[{"id":0,"selected":true,"text":"请选择上级节点"},' + treeData.substr(1, treeData.length - 1);

//        top.$('#txt_ParentId').combotree({
//            data: JSON.parse(treeData),
//            valueField: 'id',
//            textField: 'text',
//            panelWidth: '280',
//            editable: false,
//            lines: true,
//            onSelect: function (node) {
//                var nodeId = top.$('#txt_ParentId').combotree('getValue');
//                if (node.id == navId) {
//                    top.$('#txt_ParentId').combotree('setValue', nodeId);
//                    top.$.messager.alert('警告提示', '上级节点不能与当前所选相同！', 'warning');
//                }
//            }
//        }).combotree('setValue', 0);

//        top.$('#txt_Code').focus();
//        top.$('#chk_Enabled').attr("checked", true);
//        top.$('#uiform').validate({
//            //此处加入验证
//        });
//    },
//    bindCategory: function () {
//        top.$('#txt_Category').combobox({
//            url: 'Modules/handler/DataItemAdminHandler.ashx?action=GetCategory&categorycode=OrganizeCategory',
//            method: 'get',
//            valueField: 'ItemValue',
//            textField: 'ItemName',
//            editable: false,
//            panelHeight: 'auto'
//        });
//    },
//    bindComboGrid: function () {
//        top.$('#txt_Manager,#txt_AssistantManager').combogrid({
//            panelWidth: 320,
//            idField: 'Id',
//            textField: 'RealName',
//            url: 'Modules/handler/UserAdminHandler.ashx?action=GetUserListByPage',
//            sortName: 'SortCode',
//            sortOrder: 'asc',
//            fitColumns: true,
//            showPageList: false,
//            striped: true,
//            pagination: true,
//            rownumbers: true,
//            fitColumns: true,
//            pageSize: 10,
//            pageList: [10, 20, 30, 50],
//            method: 'post',
//            columns: [[
//                { title: '登录名', field: 'UserName', width: 60, sortable: true },
//                { title: '用户名', field: 'RealName', width: 70 }
//            ]]
//        });
//    }
//}

//var permissionMgr = {
//    getSelectedResource: function () {
//        var nodes = top.$('#rightnav').tree('getChecked');

//        if (nodes.length > 0) {
//            var dwg = [];
//            for (var i = 0; i < nodes.length; i++) {
//                dwg.push(nodes[i].id);
//            }
//            //alert(dwg.join(','));
//            return dwg.join(',');

//        } else {
//            return "";
//        }
//    }
//};

